#pragma once
#include<iostream>
#include<string>
#include<cstring>
#include<cerrno>
#include<cassert>
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
#include <fcntl.h>


#define PIPE_PATH "/tmp/name_pipe"
//我们确定把管道建立在系统tmp路径下。

//创建管道
bool CreateFifo(const std::string & path)
{
    umask(0000);//自己修改文件掩码
    int n = mkfifo(path.c_str(), 0666);//如果想自己用，mode写0600；
    //mkfifo成功之后返回值为0
    //失败就是 -1 ，并且填写对应的错误码
     if( n ==0 ){ return true;}
     else{std::cout<<"error:"<<strerror(errno)<<std::endl; return false;}
}

//删除管道
bool RemoveFifo(const std::string& path)
{
    //删除此文件，
    int n = unlink(path.c_str());
    //unlink成功之后返回值为0
    //失败就是 -1 ，并且填写对应的错误码
    if(n ==0 ){ return true;}
    else{std::cout<<"error:"<<strerror(errno)<<std::endl; return false;}
}



